package com.industry.staff.dal.dataobject;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.industry.framework.core.annountions.record.IdooRecordBizType;
import com.industry.framework.core.annountions.record.IdooRecordProperty;
import com.industry.system.dal.dataobject.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 部门信息
 * </p>
 *
 * @author nbZhuoZh
 * @since 2025-04-26
 */
@EqualsAndHashCode(callSuper = true)
@Data
@IdooRecordBizType
@TableName("department")
public class Department extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 租户编号
     */
    private String tenantId;

    /**
     * 部门名称
     */
    @IdooRecordProperty(value = "部门名称")
    private String deptName;

    /**
     * 上级部门id
     */
    //操他妈逼！第二个字母不能大写，前端一直转json返回 pid 。
    @JsonProperty("pId")
    private String pId;

    /**
     * 上级部门名称
     */
    //操他妈逼！第二个字母不能大写，前端一直转json返回 pdeptName 。
    @JsonProperty("pDeptName")
    private String pDeptName;

    /**
     * 部门层级路径
     */
    @IdooRecordProperty(value = "部门层级")
    private String deptLevelPath;

    /**
     * 部门层级路径ids
     */
    private String deptLevelPathIds;

    /**
     * 部门负责人（staffId）
     */
    @IdooRecordProperty(value = "部门负责人")
    private String deptManager;

    /**
     * 排序
     */
    @IdooRecordProperty(value = "排序标记" ,idooTableList = false ,idooSelector = false)
    private Integer sort;

    /**
     * 子部门数量
     */
    private String deptChildrenCount;

    /**
     * 员工数量
     */
    private String deptStaffCount;

    /**
     * 删除标记
     */
    @TableLogic
    private String delFlag;

    /**
     * 创建部门
     */
    private String createDept;

    /**
     * 部门备注
     */
    private String deptRemark;

    /**
     * 部门标签
     */
    private String deptLabel;
}
